package com.lfy.modules.common.domain;


import com.lfy.modules.common.custom.constants.AIEnum;
import com.lfy.modules.common.utils.JsonUtils;

import lombok.Data;

import java.io.Serializable;
/**
 * netty 返回消息的基类
 *
 * @author <a href="https://www.lvfeiy.top">lvfeiyang</a>
 * @date 2024/6/23 2:26
 */
@Data
public class BaseChatVO<T> implements Serializable {
    private static final long serialVersionUID = 1L;
    private String type;
    private T data;

    /**
     * 正在聊天ing返回消息
     * @param data 消息内容
     * @param <T> T
     * @return msg
     */
    public static <T> BaseChatVO<T> getChattingVO( T data) {
        BaseChatVO<T> baseChatVO = new BaseChatVO<>();
        baseChatVO.setType(AIEnum.CHAT_STATUS);
        baseChatVO.setData(data);
        return baseChatVO;
    }
    /**
     * 结束聊天返回消息
     * @return msg
     */
    public static BaseChatVO<AiChatVO> getEndChattingVO(Integer groupId,Integer modelId) {
        BaseChatVO<AiChatVO> baseChatVO = new BaseChatVO<>();
        baseChatVO.setType(AIEnum.END_CHAT_STATUS);
        AiChatVO aiChatVO = new AiChatVO();
        aiChatVO.setGroupId(groupId);
        aiChatVO.setModelId(modelId);
        baseChatVO.setData(aiChatVO);
        return baseChatVO;
    }
    /**
     * 发生异常返回消息
     */
    public static  BaseChatVO<AiChatVO> getExceptionVO(String msg,Integer groupId,Integer modelId) {
        BaseChatVO<AiChatVO> baseChatVO = new BaseChatVO<>();
        baseChatVO.setType(AIEnum.EXCEPTION_CHAT_STATUS);
        AiChatVO aiChatVO = new AiChatVO();
        aiChatVO.setGroupId(groupId);
        aiChatVO.setModelId(modelId);
        aiChatVO.setContent(msg);
        baseChatVO.setData(aiChatVO);
        return baseChatVO;
    }



}
